import axios from 'axios';

// 创建 axios 实例
const request = axios.create({
    baseURL: 'http://localhost:3000/api',
    timeout: 10000,
    headers: {
        'Content-Type': 'application/json'
    }
});

// 请求拦截器
request.interceptors.request.use(
    (config) => {
        // 从 localStorage 获取 token
        const token = localStorage.getItem('token');
        if (token) {
            config.headers.Authorization = `Bearer ${token}`;
        }
        return config;
    },
    (error) => {
        return Promise.reject(error);
    }
);

// 响应拦截器
request.interceptors.response.use(
    (response) => {
        const { data } = response;

        // 直接返回数据，不做额外的状态码判断
        // 因为后端可能直接返回数据，而不是包装在 code 和 data 中
        return data;
    },
    (error) => {
        // 处理 HTTP 状态码错误
        if (error.response) {
            switch (error.response.status) {
                case 401:
                    // 可以在这里处理登录过期的逻辑
                    localStorage.removeItem('token');
                    // window.location.href = '/login';
                    break;
                case 403:
                    break;
                case 404:
                    break;
                case 500:
                    break;
                default:
            }
        }
        return Promise.reject(error);
    }
);

export default request; 